#ifndef MANEJADORCONTEO_H_
#define MANEJADORCONTEO_H_

#include "../Entidades/Conteo.h"
#include "../Archivos/ArchivoDeEstructurasVariables.h"
#include "../HashExtensible/HashExtensible.h"
#include "../ArbolB+/ArbolBMas.h"
#include "../Entidades/Utils.h"
#include <string>
#include <vector>

using namespace Entidades;
using namespace Archivos;
using namespace Arboles;
using namespace Hash;

namespace Manejadores{

class ManejadorConteo {

private:
	ArchivoDeEstructurasVariables* conteos;
	HashExtensible* indicePorIDdeConteo;
	ArbolBMas* indicePorFechaYDistrito;
	ArbolBMas* indicePorEleccion;
	ArbolBMas* indicePorLista;


public:
	ManejadorConteo();
	void alta(string fecha,string cargo,string distrito,string nombreLista,int voto);
	void registrarVoto(string fecha,string cargo,string distrito,string nombreLista);
	bool reportePorDistrito(string distrito, string fecha);
	bool reportePorLista(string cargo, string fecha, string nombre);
	bool reportePorEleccion(string cargo, string fecha);

	virtual ~ManejadorConteo();
};
}
#endif /* MANEJADORCONTEO_H_ */
